<?php

declare(strict_types=1);

/**
 * This file is part of webman.
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the MIT-LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @author    walkor<walkor@workerman.net>
 *
 * @copyright walkor<walkor@workerman.net>
 *
 * @link      http://www.workerman.net/
 *
 * @license   http://www.opensource.org/licenses/mit-license.php MIT License
 */
global $argv;

$process = [
    // 监听文件修改并重启
    'monitor' => [
        'handler'     => process\Monitor::class,
        'reloadable'  => false,
        'constructor' => [
            // Monitor these directories
            'monitorDir' => array_merge([
                app_path(),
                config_path(),
                base_path().'/process',
                base_path().'/support',
                base_path().'/resource',
                base_path().'/.env',
            ], glob(base_path().'/plugin/*/app'), glob(base_path().'/plugin/*/config'), glob(base_path().'/plugin/*/api')),
            // Files with these suffixes will be monitored
            'monitorExtensions' => [
                'php', 'html', 'htm', 'env',
            ],
            'options' => [
                'enable_file_monitor'   => ! in_array('-d', $argv) && DIRECTORY_SEPARATOR === '/',
                'enable_memory_monitor' => DIRECTORY_SEPARATOR                            === '/',
            ],
        ],
    ],
];

if (env('ENABLE_WS')) {
    // WS监听
    $process['websocket'] = [
        'handler' => process\Websocket::class,
        'listen'  => 'websocket://0.0.0.0:'.env('WS_PORT', 10002),
        'count'   => 1,
    ];
}

return $process;
